package com.tianji.learning.service;

import com.tianji.common.domain.dto.PageDTO;
import com.tianji.learning.domain.dto.NoteDTO;
import com.tianji.learning.domain.po.Note;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tianji.learning.domain.query.AdminNotePageQuery;
import com.tianji.learning.domain.query.NotePageQuery;
import com.tianji.learning.domain.vo.AdminNoteDetailVO;
import com.tianji.learning.domain.vo.AdminNoteVO;
import com.tianji.learning.domain.vo.NoteVO;

/**
 * <p>
 * 笔记表 服务类
 * </p>
 *
 * @author author
 * @since 2025-04-25
 */
public interface INoteService extends IService<Note> {

    void saveNote(NoteDTO noteDTO);

    void gatherNote(Long id);

    void cancelGatherNote(Long id);

    void updateNote(Long id, NoteDTO noteDTO);

    PageDTO<NoteVO> queryNote(NotePageQuery query);

    PageDTO<AdminNoteVO> queryAdminNote(AdminNotePageQuery query);

    AdminNoteDetailVO queryNoteDetailToAdmin(Long id);

    void hiddenOrShowNote(Long id, Integer hidden);
}
